agents.bayesianopponentmodel
Class PerfectBayesianOpponentModelScalable
java.lang.Object
agents.bayesianopponentmodel.OpponentModel
agents.bayesianopponentmodel.PerfectBayesianOpponentModelScalable
public class PerfectBayesianOpponentModelScalable
- extends OpponentModel
Version of the standard Scalable Bayesian Model which uses the opponent's utilityspace
to calculate the real utility of the opponent's bid. This is equivalent to having complete
knowledge about the opponent's decision function.
KNOWN BUGS: (similar to original BayesianOpponentModelScalable)
1. Opponent model does not take the opponent's strategy into account, in contrast
to the original paper which depicts an assumption about the opponent'strategy
which adapts over time.
2. The opponent model becomes invalid after a while as NaN occurs in some hypotheses,
corrupting the overall estimation.
- Author:
- Mark Hendrikx
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PerfectBayesianOpponentModelScalable
public PerfectBayesianOpponentModelScalable(UtilitySpace pUtilitySpace)
getExpectedEvaluationValue
public double getExpectedEvaluationValue(Bid pBid,
int pIssueNumber)
throws java.lang.Exception
- Throws:
java.lang.Exception
getExpectedWeight
public double getExpectedWeight(int pIssueNumber)
- Overrides:
getExpectedWeight in class OpponentModel
updateWeights
public void updateWeights(double opponentUtility)
throws java.lang.Exception
- Throws:
java.lang.Exception
updateEvaluationFns
public void updateEvaluationFns(double opponentUtility)
throws java.lang.Exception
- Throws:
java.lang.Exception
haveSeenBefore
public boolean haveSeenBefore(Bid pBid)
- Overrides:
haveSeenBefore in class OpponentModel
updateBeliefs
public void updateBeliefs(Bid pBid)
throws java.lang.Exception
- Overrides:
updateBeliefs in class OpponentModel
- Throws:
java.lang.Exception
getExpectedUtility
public double getExpectedUtility(Bid pBid)
throws java.lang.Exception
- Plan: cache the results for pBid in a Hash table.
empty the hash table whenever updateWeights or updateEvaluationFns is called.
- Overrides:
getExpectedUtility in class OpponentModel
- Parameters:
pBid -
- Returns:
- weeighted utility where weights represent likelihood of each hypothesis
- Throws:
java.lang.Exception
getNormalizedWeight
public double getNormalizedWeight(Issue i,
int startingNumber)
setOpponentUtilitySpace
public void setOpponentUtilitySpace(UtilitySpace opponentUtilitySpace)